/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo.persistencia;

/**
 *
 * @author jefferson
 */
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


@SuppressWarnings("unused")

/**Classe que conecta ao banco de dados.
*/
public class Conecta {

	private static Conecta connection;
	public Connection conn;
	private String nomeDB;
	private String host;
	private String usuario;
	private String senha;
	
	/**
	 * Construtor da classe. Basicamente ele configura uma nova conexão  e a disponibiliza para ser usada
	 * @exception ClassNotFoundException Caso o driver de conexão não estaja disponível
	 * @exception SQLException em caso de uma conexão malformatada
	 */
	private Conecta () {
		this.nomeDB = "LocarraoDB";
		//this.databaseName = "banco_sistema"; 
		this.host = "localhost";
		this.usuario = "admin";
		this.senha = "123456";
		try {
			this.connectSql(this.nomeDB);
			//this.connectMysql(host, databaseName, username, passwd);
		} catch (ClassNotFoundException e) {
			Log.getLoginstance(null).fatal(e.getMessage());
			System.exit(1);
		} catch (SQLException e) {
			Log.getLoginstance(null).error(e.getMessage());
		}		
	}
	 
	/**
	 * Singleton. Usado para que haja apenas uma conexão com o banco sendo usada no sistema
	 * @return uma instância desta classe
	 */
	public static synchronized Conecta getConnection(){
		if(connection == null) {
			connection = new Conecta();
	    }
	    return connection;
	 }
	
	private void connectSql(String nomeDB) throws ClassNotFoundException, SQLException{
		Class.forName("org.sql.JDBC");
	    this.conn = DriverManager.getConnection("jdbc:sql:"+nomeDB);
	    Log.getLoginstance(null).info("Conectado com sucesso ao banco "+nomeDB);
	}

	private void connectMysql(String host,String nomeDB,String usuario,String senha) throws ClassNotFoundException, SQLException{
		Class.forName("com.mysql.jdbc.Driver");
	    this.conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+nomeDB+"?usuario="+usuario+"&senha="+senha);
	    Log.getLoginstance(null).info("Conectado com sucesso ao banco "+nomeDB+" com usuário "+usuario);
	} 
	
}
